From: Florian Müllner Date: Thu, 29 Nov 2012 19:42:38 +0000 (+0100) Subject: sessionMode: Add support for 'parentMode' property X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5304 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=187dec2816c57f093520a2959137cfc768860a2a;p=gnome-shell.git sessionMode: Add support for 'parentMode' property Defining a mode that differs significantly from the default one can get rather cumbersome. For convenience, allow mode definitions to inherit from an existing mode. https://bugzilla.gnome.org/show_bug.cgi?id=689308 --- diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js index 25a5efa95..2774ad6d5 100644 --- a/js/ui/sessionMode.js +++ b/js/ui/sessionMode.js @@ -14,6 +14,7 @@ const DEFAULT_MODE = 'restrictive'; const _modes = { 'restrictive': { + parentMode: null, hasOverview: false, showCalendarEvents: false, allowSettings: false, @@ -197,7 +198,13 @@ const SessionMode = new Lang.Class({ _sync: function() { let params = this._modes[this.currentMode]; - params = Params.parse(params, this._modes[DEFAULT_MODE]); + let defaults; + if (params.parentMode) + defaults = Params.parse(this._modes[params.parentMode], + this._modes[DEFAULT_MODE]); + else + defaults = this._modes[DEFAULT_MODE]; + params = Params.parse(params, defaults); // A simplified version of Lang.copyProperties, handles // undefined as a special case for "no change / inherit from previous mode"